//
// Created by zhp on 2025/7/17.
//

void const_for_data();

void const_for_point();

void const_for_point_data();

void const_for_point_and_data();

int a = 1;
int b = 2;

int main() {
    const_for_data();
    const_for_point();
    const_for_point_data();

}

void const_for_data() {

    const int c = 3;

    // 改变数值，报错
//    c = 2;

}

void const_for_point() {
    // 指针 所指向的数据内容 不能改变
    // 这俩等价
    const int *p = &a;
    int const *q = &a;

    // 改变指针指向的数据，报错
//    *p = a;
}

void const_for_point_data() {
    // 指针的指向不能改变
    int *const w = &a;

    // 改变指向，报错
//     w = &a;
    // 数据内容可以改变
    *w = 1;
}

void const_for_point_and_data() {
    // 指针的指向不能改变
    const int *const w = &a;

    // 改变指向，报错
//     w = &a;
    // 改变数据内容，报错
//    *w =1;
}